בשליפה ממסד נתונים המקודד ב UTF8 general ci אני מקבל במקום תוים בעברית סימני שאלה עם רקע שחור בצורת יהלום.
במסד הנתונים הדטא מוצג בעברית באופן תקין,

הגדרת UTF8 מוגדרת במקומות הבאים:
קלאס התחברות

public static function getDbh() {
      $dbh = new PDO('mysql:host=localhost;dbname=biblio1', 'root', ''); 
      $dbh->query('SET NAMES UTF8');
      return $dbh;
  }
}

ובשאר המקומות הכל מוגדר בדיוק כמו במדריך הבא:

http://phpguide.co.il/UTF_8_%D7%A7%D7%99%D7%93%D7%95%D7%93_%D7%95%D7%A1%D7%99%D7%9E%D7%A0%D7%99_%D7%A9%D7%90%D7%9C%D7%94.htm

אשמח לעזרה
תודה
דוד

3 תשובות

avatar ענה zacharya ב 31 ליולי 2014 #

הקובץ מקודד בUTF-8 WITHOUT BOM?

avatar ענה intval ב 31 ליולי 2014 #

א. אתה יכול לנסות להוסיף גם את הקוד הבא:

$dbh->query("set character_set_client='utf8'");
$dbh->query("set character_set_results='utf8'");
$dbh->query("set collation_connection='utf8'");


ב. רוב הסיכויים שהבעיה הייתה בהכנסה. הנתונים הוכנסו בעבר בקידוד אחר לתוך עמודה שהיא utf8_general_ci. מה קורה אם שורות חדשות שאתה מכניס בעצמך דרך phpmyadmin ?

avatar ענה David ב 02 לאוגוסט 2014 #

הקובץ היה מקודד ב UTF-8 WITHOUT BOM
תודה רבה! עזרת לי מאוד, באמת הכנסתי את הקוד הסיפור נפתר.

שוב תודה